package com.bcqn.service;

import com.bcqn.dao.MessageMapper;
import com.bcqn.dao.PostMapper;
import com.bcqn.dao.PostReviewMapper;
import com.bcqn.enums.MessageType;
import com.bcqn.model.Message;
import com.bcqn.vo.MessageVo;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Service
public class MessageService {

    @Resource
    private MessageMapper messageMapper;

    @Resource
    private PostMapper postMapper;

    @Resource
    private PostReviewMapper postReviewMapper;

    public Long getMeCount(Long userId){
        return messageMapper.getCount(userId);
    }

    public List<MessageVo> getAboutMe(Long id,Long maxId) {
        List<Message> list = messageMapper.getMessageByUserId(id,maxId);
        List<MessageVo> messageVos = new ArrayList<>();
        for (Message message : list) {
            MessageVo messageVo = new MessageVo();
            messageVo.setMessage(message);
            if (message.getPostId() != null) {
                messageVo.setPost(postMapper.selectByPrimaryKey(message.getPostId()));
            }
            if (message.getReviewId() != null) {
                messageVo.setPostReview(postReviewMapper.selectByPrimaryKey(message.getReviewId()));
            }
            messageVos.add(messageVo);
        }
        return messageVos;
    }

    public Message getById(Long id) {
        return messageMapper.selectByPrimaryKey(id);
    }

    public int update(Message message) {
        return messageMapper.updateByPrimaryKey(message);
    }

    public int updateReadAll(Long userId) {
        return messageMapper.updateAllRead(userId);
    }
}
